/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista.patologias;

import prolog.GestorPrologEnfermedad;
import modelo.GestorModelo;
import modelo.patologias.Enfermedad;
import modelo.patologias.GestorEnfermedad;
import modelo.patologias.TipoEnfermedad;
import util.GestorComponenteVista;
import vista.GestorVistaEditor;

/**
 *
 * @author raul
 */
public class GestorVistaEditorPatologia extends GestorVistaEditor {
    private GestorEnfermedad gestorModelo = new GestorEnfermedad();
    private PatologiasPnl formulario;
    
    /**indico si se saco el objeto del arbol previo a ser modificado*/
    private boolean seSaco;

    public GestorVistaEditorPatologia() {
        gestorModelo.crearModelo();
        super.setModo(CREACION);
    }
    
    public GestorVistaEditorPatologia(Enfermedad modelo){
        gestorModelo.setModelo(modelo);
        super.setModo(MODIFICACION);
    }

    @Override
    public GestorModelo getGestorModelo() {
        return gestorModelo;
    }

    @Override
    public String getNombreObjeto() {
        return "La Patologia";
    }

    @Override
    public void cerrarFormulario() {
        getFormulario().limpiarPantalla();
        getFormulario().habilitarEdicion(false);
        getFormulario().agregarNodoArbol(gestorModelo.getModelo().getTipoEnfermedad(), gestorModelo.getModelo());
    }

    @Override
    public void inicializarVista() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void setearModeloConVista() {
        sacarDeVista();
        Enfermedad modelo = gestorModelo.getModelo();
        modelo.setNombre(formulario.getNombreEnfermedadTxt().getText());
        modelo.setDescripcion(formulario.getDescripcionDeEnfermedadTxt().getText());
        modelo.setTipoEnfermedad(
                (TipoEnfermedad) formulario.getTipoDeEnfermedadCmb().getSelectedItem());
        gestorModelo.agregarSintomas(
                GestorComponenteVista.getObjetosEnLista(formulario.getSintomasLst()));
        modelo.setLigadaAlSexo(formulario.getLigadaAlSexoChk().isSelected());
        gestorModelo.setParentescosTransmisores(
                GestorComponenteVista.getObjetosEnLista(formulario.getParentescosTransmisoresCkl()));
        
    }

    @Override
    public void setearVistaConModelo() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void abrirFormulario() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public PatologiasPnl getFormulario() {
        return formulario;
    }
    
    public void setFormulario(PatologiasPnl formulario) {
        this.formulario = formulario;
    }

    void sacarDeVista() {
        if (!isCreacion() && !seSaco) {
            getFormulario().quitarNodo(gestorModelo.getModelo());
            seSaco = true;
        }
    }

    void recargarEnVista() {
        if (!isCreacion() && seSaco)
            getFormulario().agregarNodoArbol(gestorModelo.getModelo().getTipoEnfermedad(),gestorModelo.getModelo());
    }

    @Override
    public void accionPostGuardado() {
        GestorPrologEnfermedad gpe = new GestorPrologEnfermedad();
        gpe.actualizarInfoEnfermedad(gestorModelo.getModelo());
    }
    
    
}
